// Copyright (C) 2020  Matthew "strager" Glazar
// See end of file for extended copyright information.

#include <ostream>
#include <quick-lint-js/io/file-path.h>
#include <quick-lint-js/util/utf-16.h>
#include <string_view>

namespace quick_lint_js {
#if defined(_WIN32)
std::ostream& operator<<(std::ostream& out, Simplified_Path path) {
  auto write_field = [&](const char* name, std::wstring_view s) -> void {
    out << "  ." << name << " = \"" << wstring_to_mbstring(s).value()
        << "\",\n";
  };
  out << "Simplified_Path{\n";
  write_field("full_path", path.full_path);
  write_field("root", path.root);
  write_field("relative", path.relative);
  out << "}";
  return out;
}
#endif
}

// quick-lint-js finds bugs in JavaScript programs.
// Copyright (C) 2020  Matthew "strager" Glazar
//
// This file is part of quick-lint-js.
//
// quick-lint-js is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// quick-lint-js is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with quick-lint-js.  If not, see <https://www.gnu.org/licenses/>.
